草庐IT

PHP 缓存控制似乎不起作用

全部标签

ruby - 为什么 `block_given?` 在这个动态定义的方法中不起作用?

当我编写带有可选block的方法时,我通常使用类似block.callifblock_given?但是,在像下面这样动态定义的方法中,block_given?似乎不起作用。classFoo%w[barbaz].eachdo|method_name|define_singleton_method(method_name)do|&block|puts"Was#{method_name}givenablock?#{block_given?}"putsblock.callendendendFoo.bar{puts'Iamablock'}该block按预期调用,但block_given?返回fa

ruby - Ruby 中的正则表达式负后视似乎不起作用

制作参数解析器。我想将一个字符串拆分为一个分隔符为","的数组除非前面有"|".这意味着字符串"foo,ba|,r,arg"应该导致`["foo","ba|,r","arg"]`我正在尝试使用这个正则表达式:(?适用于http://regexhero.net/tester/但是当我尝试args.split(/(?在ruby​​中,我得到一个错误:undefined(?...)sequence:/(? 最佳答案 Ruby的正则表达式引擎还不支持lookbehind。您需要切换到1.9或使用Oniguruma.如果这不是一个选项,您可以

ruby - 为什么 Rails 控制台说 "cannot load such file -- readline"?

我是RubyonRails的新手,正在使用RVM来管理Ruby版本。我的笔记本电脑安装了Ruby1.8.7,但我的项目使用的是RVM、Ruby1.9.3和Rails3.2.11。如果没有出现以下错误,我无法运行railsc或railsconsole:/home/phil/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/irb/completion.rb:9:in`require':cannotloadsuchfile--readline(LoadError)from/home/phil/.rvm/rubies/ruby-1.9.3-p392/lib

ruby-on-rails - 带有 Memcache 的 Rails 返回错误的缓存对象?

我有一个相当大的Rails应用程序,它在单独的服务器上使用memcached作为其缓存存储。问题是我在生产环境中随机出现错误,似乎表明memcached正在返回不正确的对象。例子:在这个例子中,current_site是一个辅助方法,它访问Site模型上的一个方法,该模型使用Rails.cache来缓存模型ActionView::TemplateErrorinListingsController#editundefinedmethod`settings'for#Online#12ofapp/views/layouts/site.html.erb9:10:11:12:13:"/>14:1

ruby-on-rails - 为什么我的 Controller 的实例变量在 View 中不起作用 (Rails)

我想向我的Controller添加几个实例变量,因为在多个操作的View中需要相关变量。但是,下面的示例并不像我预期的那样工作。classExampleController据我了解,Rails从Controller获取实例变量并使它们在View中可用。如果我在操作方法中分配相同的变量,它工作正常-但我不想做两次。为什么我的方法不行?(注意:这是一个有点垃圾的例子,但我希望它有意义)编辑:我在这里找到了这个问题的答案:WhendoRubyinstancevariablesgetset?编辑2:何时是使用before_filter和初始化方法等过滤器的最佳时机?

ruby-on-rails - Ruby 1.9 中的动态变量作用域

我对在Ruby中使用动态(而不是词法)作用域变量很感兴趣。似乎没有直接的内置方式,就像Lisp中的let一样。ChristianNeukirchen建议执行动态范围变量的一种可能方法.他在他的Dynamic类中创建了一个“线程本地散列”。我对此并不太着迷。然后我想起来Ruby1.9有一个tap方法。我看到很多人使用tap在命令链中打印调试值。我认为它可以用来很好地模拟动态作用域变量。下面是一个示例,说明了人们希望使用动态作用域变量的情况,以及使用tap的解决方案。如果我有一个博客可以发布此内容并获得一些反馈,我会在那里发布。相反,我来S/O是为了批评这个想法。发表您的评论,我会给获得最

ruby-on-rails - 缓存特定的部分 rails 3.0.x

我有一个主页,整个页面都呈现了一些部分。它也有sessionheader(登录)。部分包含已分页的书籍集。现在我想缓存这个部分,因为它每周更新一次。问题1:如何缓存特定的部分(不命中分贝)?问题2:更新时如何删除(过期)缓存内容那个书本模型? 最佳答案 您正在寻找fragmentcaching这里,发生在View层。片段缓存和存储内容的过期非常容易做到。您有一个图书list,假设您的View看起来有点像这样:要为这一位启用缓存,只需将其包装在cache中:当然,这不会为缓存命名或对它做任何特别的事情...虽然Rails会自动为这个缓

ruby - Gem 在 irb 中加载但不在控制台中加载

这个让我抓狂。我可以通过irb加载gem:steve@server:/var/www/listings$irbirb(main):001:0>Gem.path=>["/home/steve/.gem/ruby/1.9.1","/usr/local/ruby/lib/ruby/gems/1.9.1"]irb(main):002:0>require'nokogiri'=>true但我无法通过Rails控制台加载它:irb(main):001:0>Gem.path=>["/home/steve/.gem/ruby/1.9.1","/usr/local/ruby/lib/ruby/gems/1

ruby - 为什么 Ruby 似乎随机访问目录中的文件?

这是设计使然吗?代码如下:classFileRenamerdefRenameFiles(folder_path)files=Dir.glob(folder_path+"/*")endendputs"Renamingfiles..."renamer=FileRenamer.new()files=renamer.RenameFiles("/home/papuccino1/Desktop/Test")putsfilesputs"Renamingcomplete."获取文件的顺序似乎是随机的,而不是它们在Nautilus中显示的那样。这是设计使然吗?我只是好奇。 最

ruby - 如果 `self` 始终是 Ruby 中的隐含接收者,为什么 `self.puts` 不起作用?

在Ruby中,我的理解是self是任何裸方法调用的隐含接收者。然而:~:irb>>puts"foo"foo=>nil>>self.puts"foo"NoMethodError:privatemethod`puts'calledformain:Object这是什么原因?如果有任何帮助:>>method(:puts).owner=>Kernel 最佳答案 私有(private)方法不能有接收者我认为答案是这样的:Ruby强制方法隐私的方式是它不允许使用显式接收者调用私有(private)方法。一个例子:classBakerdefbake